libcurlfandomcom_ru-20200213-history
Libcurlru вики
На этом ресурсе размещается перевод документации библиотеки libcurl. Оригинал документации и саму библиотеку вы можете найти на официальном сайте http://curl.haxx.se/libcurl/. Цель проекта - обеспечить полный перевод на русский язык и обеспечить удобную навигацию по документации. Если вы нашли ошибку, замечание, неточность или грубость перевода, не поленитесь, откорректируйте страницу, ведь в том числе и от вашей работы зависит качество проекта. А если есть возможность, заведите описание еще не переведенных функций. Если вы решите помочь с переводом, пожалуйста, ознакомитесь с Правилами перевода. Here you can find Libcurl documentation in Russian. Libcurl - a library used in the utility curl. = Libcurl = libcurl это свободная и простая в использовании клиентская библиотека по передачи данных по URL, она поддерживает DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET и TFTP. Также libcurl имеет поддержку SSL сертификатов, HTTP POST, HTTP PUT, FTP загрузку, HTTP form загрузку, proxy, cookies, user+password авторизацию (Basic, Digest, NTLM, Negotiate, Kerberos), докачивания файлов, http прокси туннелирования и многого другого! libcurl легко переносима, она собирается и работает на многих платформах, включая Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS и остальные... libcurl свободна, потокобезопасна, совместима с IPv6, функциональна, имеет хорошую поддержку, быстрая, тщательно задокументирована и уже используется во многих известных, крупных и успешных компаниях и в многочисленных приложениях. Простой интерфейс При использовании в Libcurl "простого" интерфейса вы инициализируете сеанс и получаете handle (часто упоминается как "easy handle"), который вы используете в качестве аргумента в функциях Easy интерфейса. Используйте curl_easy_init, чтобы получить handle. После получения вы должны установить все нужные параметры в предстоящей передаче, наиболее важным среди которых является URL (передавать что-то без заданного URL невозможно). Вы можете задавать различные функции обратного вызова, которые будут вызываться из библиотеки, при получении данных и т.д. Для всего этого используется curl_easy_setopt. После того как все настройки окончены, вы сообщаете Libcurl выполнение передачи с помощью curl_easy_perform. Она проделает все операции и вернет результат своей работы типа перечисления CURLcode. После передачи, вы можете установить новые настройки и сделать еще передачу, или, если вы уже закончили, вызовите очистку сессии curl_easy_cleanup. Если вы хотите иметь постоянное подключение, не освобождайте handle сразу, вместо этого выполните другие передачи с использованием этого же handle. Никогда не используйте один и тот же хендл в разных потоках!!! (можно сделать синхронизацию, но это сведёт на нет плюсы многопоточности) Функции Multi интерфейс This is an overview on how to use the libcurl multi interface in your C programs. There are specific man pages for each function mentioned in here. There's also the libcurl-tutorial(3) man page for a complete tutorial to programming with libcurl and the libcurl-easy(3) man page for an overview of the libcurl easy interface. All functions in the multi interface are prefixed with curl_multi. Share интерфейс This is an overview on how to use the libcurl share interface in your C programs. There are specific man pages for each function mentioned in here. All functions in the share interface are prefixed with curl_share. Это обзор того, как использовать libcurl share интерфейс в ваших C-программах. Для каждой функции, упомянутой здесь, существуют конкретные man-страницы. Все функции в разделяемом (share) интерфейсе снабжаются префиксом curl_share. * curl_share_setopt Примеры HTTP : simple.c - демонстрация получения удалённой веб-страницы с помощью всего четырёх функций libcurl. HTTPS : https.c - получение страницы HTTPS. : simplessl.c - демонстрирует получение HTTPS-страницы и установку различных опций SSL. HTTP с заголовками : sepheaders.c - получение веб-страницы и запись заголовков ответа в отдельный файл. FTP : ftpget.c - доказывает простоту получения файла по FTP. FTP отправка : ftpupload.c - отправляет локальный файл на удалённый FTP-сервер, а также переименовывает файл после успешной передачи. Получение файла в память : getinmemory.c - описывает процесс использования системы обратных вызов для получения документов в буфер в памяти без необходимости записывать файлы. HTTP PUT : httpput.c - выполнение PUT-запроса локального файла на HTTP-сервер. HTTP POST : postit2.c - показывает как создать форму по RFC1867 и отправить её на HTTP-сервер. Постоянные соединения : persistant.c демонстрирует как можно получать файлы последовательно через одно соединение, если удаленный сервер поддерживает это. Многопоточное получение URL : multithread.c - запуск нескольких потоков для получения одного URL. Необходима поточная библиотека. Получение URL с отображением прогресса через GTK : curlgtk.c - использует GTK и обратный вызов libcurl для показа GUI-прогресса выполнения загрузки. fopen() для URL : fopen.c демонстрирует как можно использовать fopen()-эмуляцию для чтения URL вместо локальных файлов. Неблокирующаяся отправка формы : multi-post.c makes a multipart formpost using the multi interface, which makes it a non-blocking operation. Отладочный обратный вызов : debug.c показывает как можно использовать ответ debug чтобы получить полную цепочку всех данных протокола, которые были отправлены/получены (и не только). Парсинг HTML : htmltitle.cc показывает как использовать libxml для парсинга HTML полученного libcurl. Использование CURLOPT_SSL_CTX_FUNCTION : curlx.c uses CURLOPT_SSL_CTX_FUNCTION to set a custom callback to deal with an OpenSSL SSL_CTX * at SSL handshake time. Выполнение SOAP через libcurl : SOAP-пример от vivtek.com См. также Список всех функций